#ifndef __BSP_COMMON_H_
#define __BSP_COMMON_H_

#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <stm32f4xx_hal.h>
#include "delay.h"

// #define ENABLE_SERIAL_SHOW_IMAGE
// #define ENABLE_MCO_AS_CAMERA_CLOCK
#define ENABLE_LCD_SHOW_IMAGE
#define ENABLE_DCMI_CROP

#ifdef ENABLE_SERIAL_SHOW_IMAGE
// #define ENABLE_DEBUG_SERIAL_DMA_TX
#endif

#if !defined(__ARMCC_VERSION)
#define LOG(fmt, ...)                                                  \
    do {                                                               \
        printf("[%s:%d] " fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
        fflush(stdout);                                                \
    } while (0)
#else
#define LOG(fmt, ...)                                                  \
    do {                                                               \
        printf("[%s:%d] " fmt, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
    } while (0)
#endif

void Error_Handler();

#endif